Quality Time - Can Chaotic Methods Improve Software Quality Predictions?
نویسنده
چکیده
P redictability is a measure of how accurately we can forecast a future event. 100% predictability is synonymous with omnipotence, 0% with having no clue whatsoever. Analog devices generally provide good levels of predictability. For example, manufacturers sell light bulbs with MTTF (mean time to failure) scores. A car traveling at 40 mph will still be traveling at a speed plus or minus some small amount from 40 mph a second later, assuming no obstacles exist. Even analog systems such as the weather are quite predictable if we only look at the immediate future. Software system predictability, however, is quite different from that of analog systems and devices. When we say a software package is high-quality, we mean that it will behave in a manner we've defined as acceptable. That is, we generally expect it to be available, operate as it's supposed to, and rarely fail. Unfortunately, the key word here— " generally " —is not a strong enough assertion for systems that can't tolerate failure. General statements about quality don't provide confidence about how software will behave, no matter how immediately into the future we predict. Flip one bit one nanosec-ond later, and all bets are off on what the consequences will be. Two interacting culprits cause our inability to precisely (as opposed to generally) predict a software program's behavior: hidden defects (faults) and enormous input spaces. If the input-space size were more tractable and we could identify all existing faults, the predictability problem would decrease substantially. To have 100% software quality predictability , we must know each fault's consequences. This requires the impossible task of knowing each fault's location and how each fault interacts with each software input. Because 100% predictability is impossible , the question becomes, " How close to it can we come and how? " Faults First, look at the problem caused by incorrectly coded logic. Faults are manifestations of mental mistakes (usually called errors) by programmers and system designers. If we knew where all the faults were in a program, we could reduce unpredictability by fixing them or determining their behav-ioral consequences. Fixing them would be preferable if we could fix all faults without new ones arising. But let's look at the magnitude of the problem of doing so. For simplicity, let's assume only one defect exists in a program comprising one million source lines of code. And assume we know the defect is …
منابع مشابه
An optimization technique on pseudorandom generators based on chaotic iterations
Internet communication systems involving cryptography and data hiding often require billions of random numbers. In addition to the speed of the algorithm, the quality of the pseudo-random number generator and the ease of its implementation are common practical aspects. In this work we will discuss how to improve the quality of random numbers independently from their generation algorithm. We pro...
متن کاملAnalysis of Quality of the Design of the Object Oriented Software using Fuzzy Logic
Many of the software fail due to poor quality. Estimating software quality is an important task in the software development. The development of large software system is a time consuming and resource consuming activity. Software metrics are necessary to identify where the resources are needed; they are a crucial source of information for decision making. To produce high quality object oriented a...
متن کاملDetermining the best water quality model for the rivers in north of Iran (case study: Pasikhan River)
The aim of this paper is to study the popular models used for the simulation of major elements of a water quality system. The present study compares results of the CE-QUAL-W2 model with the WASP5 and MIKE11 models to assess the water quality of Pasikhan River. The contaminant loadings of Nitrate and Phosphate are utilized in the CE-QUAL-W2, WASP5 and MIKE11 simulations. This study is the first ...
متن کاملQuality Improvement in "Heroic" Projects A reasonable activity model for quality enhancement for medium-sized "chaotic" software development projects
A substantial part of actual practical software engineering (SE) work is performed in a chaotic way according to the famous SEI classification. This paper deals with chaotic projects which nevertheless succeed, labeling them "heroic" projects. Example scenarios from industrial practice explain why any serious amount of development work will always be heroic. A first-aid approach to quality assu...
متن کاملClassification techniques for air quality forecasting
Air quality forecasting is one of the core elements of contemporary Urban Air Quality Management and Information Systems. Such systems are usually set up in order to serve environmental legislation needs and are tailored towards decision makers (for atmospheric quality problem abatement) and citizens (for early warning and information provision). The pluralism of forecasting methods that are av...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- IEEE Software
دوره 17 شماره
صفحات -
تاریخ انتشار 2000